<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Google Native Client</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Google_Native_Client"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Google_Native_Client rootpage-Google_Native_Client skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Google Native Client</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">
<style data-mw-deduplicate="TemplateStyles:r1236090951">
/* start https://en.wikipedia.org/ */
.mw-parser-output .hatnote{font-style:italic}.mw-parser-output div.hatnote{padding-left:1.6em;margin-bottom:0.5em}.mw-parser-output .hatnote i{font-style:normal}.mw-parser-output .hatnote+link+.hatnote{margin-top:-0.5em}@media print{body.ns-0 .mw-parser-output .hatnote{display:none!important}}
/* end https://en.wikipedia.org/ */
</style><div role="note" class="hatnote navigation-not-searchable">"Google NaCl" redirects here. For Networking and Cryptography library, see <a href="NaCl_(software)" title="NaCl (software)">NaCl (software)</a>.</div>
<p class="mw-empty-elt">
</p>
<style data-mw-deduplicate="TemplateStyles:r1295905060">
/* start https://en.wikipedia.org/ */
.mw-parser-output .infobox-subbox{padding:0;border:none;margin:-3px;width:auto;min-width:100%;font-size:100%;clear:none;float:none;background-color:transparent}.mw-parser-output .infobox-3cols-child{margin:auto}.mw-parser-output .infobox .navbar{font-size:100%}@media screen{html.skin-theme-clientpref-night .mw-parser-output .infobox-full-data:not(.notheme)>div:not(.notheme)[style]{background:#1f1f23!important;color:#f8f9fa}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .infobox-full-data:not(.notheme)>div:not(.notheme)[style]{background:#1f1f23!important;color:#f8f9fa}}@media(min-width:640px){body.skin--responsive .mw-parser-output .infobox-table{display:table!important}body.skin--responsive .mw-parser-output .infobox-table>caption{display:table-caption!important}body.skin--responsive .mw-parser-output .infobox-table>tbody{display:table-row-group}body.skin--responsive .mw-parser-output .infobox-table th,body.skin--responsive .mw-parser-output .infobox-table td{padding-left:inherit;padding-right:inherit}}
/* end https://en.wikipedia.org/ */
</style><table class="infobox vevent"><tbody><tr><th colspan="2" class="infobox-above summary">Google Native Client</th></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="Programmer" title="Programmer">Developer(s)</a></th><td class="infobox-data"><a href="Google" title="Google">Google</a>, others</td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;">Initial release</th><td class="infobox-data">16 September 2011<span style="display:none"> (<span class="bday dtstart published updated">2011-09-16</span>)</span><sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup></td></tr><tr style="display: none;"><td colspan="2" class="infobox-full-data"></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="Software_release_life_cycle" title="Software release life cycle">Stable release</a></th><td class="infobox-data"><div style="margin:0px;"><b>SDK:</b> <a rel="nofollow" class="external text" href="https://developer.chrome.com/native-client/sdk/release-notes">Pepper 45</a> / 10 July 2015<span style="display:none"> (<span class="bday dtstart published updated">2015-07-10</span>)</span>
<p><b>Clients:</b> Same as <a href="Google_Chrome" title="Google Chrome">Google Chrome</a>
</p>
</div></td></tr><tr style="display:none"><td colspan="2">
</td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="Repository_(version_control)" title="Repository (version control)">Repository</a></th><td class="infobox-data"><style data-mw-deduplicate="TemplateStyles:r1126788409">
/* start https://en.wikipedia.org/ */
.mw-parser-output .plainlist ol,.mw-parser-output .plainlist ul{line-height:inherit;list-style:none;margin:0;padding:0}.mw-parser-output .plainlist ol li,.mw-parser-output .plainlist ul li{margin-bottom:0}
/* end https://en.wikipedia.org/ */
</style><div class="plainlist"><ul><li><span class="url"><a rel="nofollow" class="external text" href="https://chromium.googlesource.com/native_client/src/native_client.git">chromium<wbr>.googlesource<wbr>.com<wbr>/native<wbr>_client<wbr>/src<wbr>/native<wbr>_client<wbr>.git</a></span> </li></ul>
</div></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;">Written in</th><td class="infobox-data"><a href="C_(programming_language)" title="C (programming language)">C</a>, <a href="C%2B%2B" title="C++">C++</a></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="Operating_system" title="Operating system">Operating system</a></th><td class="infobox-data"><a href="Windows" class="mw-redirect" title="Windows">Windows</a>, <a href="Linux" title="Linux">Linux</a>, <a href="MacOS" title="MacOS">macOS</a>, <a href="ChromeOS" title="ChromeOS">ChromeOS</a></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="Computing_platform" title="Computing platform">Platform</a></th><td class="infobox-data"><a href="X86" title="X86">x86</a>, <a href="ARM_architecture" class="mw-redirect" title="ARM architecture">ARM</a>, <a href="MIPS_architecture" title="MIPS architecture">MIPS</a></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;">Successor</th><td class="infobox-data"><a href="WebAssembly" title="WebAssembly">WebAssembly</a></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="Software_categories#Categorization_approaches" title="Software categories">Type</a></th><td class="infobox-data"><a href="Sandbox_(computer_security)" title="Sandbox (computer security)">Sandbox</a> in web browsers for native code</td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="Software_license" title="Software license">License</a></th><td class="infobox-data"><a href="BSD_licenses" title="BSD licenses">New BSD</a></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;">Website</th><td class="infobox-data"><span class="url"><a rel="nofollow" class="external text" href="https://developer.chrome.com/docs/native-client/">developer<wbr>.chrome<wbr>.com<wbr>/docs<wbr>/native-client<wbr>/</a></span> </td></tr></tbody></table>
<p><b>Google Native Client</b> (<b>NaCl</b>) is a discontinued <a href="Sandbox_(computer_security)" title="Sandbox (computer security)">sandboxing</a> technology for running either a subset of Intel <a href="X86" title="X86">x86</a>, <a href="ARM_architecture" class="mw-redirect" title="ARM architecture">ARM</a>, or <a href="MIPS_architecture" title="MIPS architecture">MIPS</a> native code, or a portable executable, in a sandbox. It allows safely running <a href="Native_code" class="mw-redirect" title="Native code">native code</a> from a <a href="Web_browser" title="Web browser">web browser</a>, independent of the user <a href="Operating_system" title="Operating system">operating system</a>, allowing <a href="Web_app" class="mw-redirect" title="Web app">web apps</a> to run at near-native speeds, which aligns with Google's plans for <a href="ChromeOS" title="ChromeOS">ChromeOS</a>. It may also be used for securing browser <a href="Plug-in_(computing)" title="Plug-in (computing)">plugins</a>, and parts of other applications or full applications<sup id="cite_ref-Register_2-0" class="reference"><a href="#cite_note-Register-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> such as <a href="ZeroVM" title="ZeroVM">ZeroVM</a>.<sup id="cite_ref-ZeroVM_3-0" class="reference"><a href="#cite_note-ZeroVM-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup>
</p><p>Google first demonstrated the technology on 9 December 2011 by releasing several new Chrome-only versions of <a href="Videogame" class="mw-redirect" title="Videogame">games</a> known for their rich and <a href="Central_processing_unit" title="Central processing unit">processor</a>-intensive <a href="Computer_graphics" title="Computer graphics">graphics</a>, including <i><a href="Bastion_(video_game)" title="Bastion (video game)">Bastion</a></i> (no longer supported on the <a href="Chrome_Web_Store" title="Chrome Web Store">Chrome Web Store</a>). Later Google released Portable Native Client (PNaCl), an architecture-independent <a href="Ahead-of-time_compilation" title="Ahead-of-time compilation">compiled ahead-of-time</a> version of NaCl. The general concept of NaCl (running native code in web browser) has been implemented before in <a href="ActiveX" title="ActiveX">ActiveX</a>, but NaCl runs content in a sandbox while ActiveX application has full access to the system (disk, memory, user-interface, registry, etc.).
</p><p>Mozilla proposed <a href="Asm.js" title="Asm.js">asm.js</a> as an alternative to both ActiveX and NaCl. asm.js also allows applications written in <a href="C_(programming_language)" title="C (programming language)">C</a> or <a href="C%2B%2B" title="C++">C++</a> to be compiled to run in the browser and also supports ahead-of-time compilation, but is a subset of JavaScript and hence backwards-compatible with browsers that do not support it directly.
</p><p>On 12 October 2016, a comment on the Chromium issue tracker indicated that Google's Pepper and Native Client teams had been destaffed.<sup id="cite_ref-:1_4-0" class="reference"><a href="#cite_note-:1-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> On 30 May 2017, Google announced deprecation of PNaCl in favor of <a href="WebAssembly" title="WebAssembly">WebAssembly</a>.<sup id="cite_ref-:0_5-0" class="reference"><a href="#cite_note-:0-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> Although initially Google planned to remove PNaCl in first quarter of 2018,<sup id="cite_ref-:0_5-1" class="reference"><a href="#cite_note-:0-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> developers postponed the date multiple times until June 2022.<sup id="cite_ref-:2_6-0" class="reference"><a href="#cite_note-:2-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-:3_7-0" class="reference"><a href="#cite_note-:3-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup>
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="Overview">Overview</h2></div>
<p>Native Client was an <a href="Open-source_software" title="Open-source software">open-source</a> project developed by <a href="Google" title="Google">Google</a>.<sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> Games such as <i><a href="Quake_(video_game)" title="Quake (video game)">Quake</a></i>,<sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> <i><a href="XaoS" title="XaoS">XaoS</a></i>, <i><a href="Battle_for_Wesnoth" class="mw-redirect" title="Battle for Wesnoth">Battle for Wesnoth</a></i>,<sup id="cite_ref-10" class="reference"><a href="#cite_note-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup> <i><a href="Doom_(1993_video_game)" title="Doom (1993 video game)">Doom</a></i>,<sup id="cite_ref-11" class="reference"><a href="#cite_note-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup> <i><a href="Lara_Croft_and_the_Guardian_of_Light" title="Lara Croft and the Guardian of Light">Lara Croft and the Guardian of Light</a></i>,<sup id="cite_ref-12" class="reference"><a href="#cite_note-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup> <i><a href="From_Dust" title="From Dust">From Dust</a></i>,<sup id="cite_ref-13" class="reference"><a href="#cite_note-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup> and <a href="MAME" title="MAME">MAME</a>, as well as the sound processing system <a href="Csound" title="Csound">Csound</a>, have been ported to Native Client. Native Client has been available in the <a href="Google_Chrome" title="Google Chrome">Google Chrome</a> web browser since version 14, and has been enabled by default since version 31, when the Portable Native Client (PNaCl, pronounced: pinnacle) was released.<sup id="cite_ref-announcement_14-0" class="reference"><a href="#cite_note-announcement-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-15" class="reference"><a href="#cite_note-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-16" class="reference"><a href="#cite_note-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup> Native Client has also been used to safely run downloaded code in software other than web browsers, like in the Dæmon game engine.<sup id="cite_ref-naclInGameEngine_17-0" class="reference"><a href="#cite_note-naclInGameEngine-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup>
</p><p>An <a href="ARM_architecture" class="mw-redirect" title="ARM architecture">ARM</a> implementation was released in March 2010.<sup id="cite_ref-18" class="reference"><a href="#cite_note-18"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup> <a href="X86-64" title="X86-64">x86-64</a>, <a href="IA-32" title="IA-32">IA-32</a>, and <a href="MIPS_architecture" title="MIPS architecture">MIPS</a> were also supported.
</p><p>To run an application portably under PNaCl, it must be compiled to an architecture-agnostic and stable subset of the <a href="LLVM" title="LLVM">LLVM</a> <a href="Intermediate_representation" title="Intermediate representation">intermediate representation</a> <a href="Bytecode" title="Bytecode">bytecode</a>.<sup id="cite_ref-19" class="reference"><a href="#cite_note-19"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup> The executables are called PNaCl executables (pexes). The PNaCl Toolchain makes .pexe files; NaCl Toolchain .nexe files. The <a href="File_format#Magic_number" title="File format">magic number</a> of .nexe files is 0x7F 'E' 'L' 'F', which is <a href="Executable_and_Linkable_Format" title="Executable and Linkable Format">ELF</a>. In Chrome, they are translated to architecture-specific executables so that they can be run.
</p><p>NaCl uses software <a href="Fault_detection_and_isolation" title="Fault detection and isolation">fault detection and isolation</a> for sandboxing on x86-64 and ARM.<sup id="cite_ref-20" class="reference"><a href="#cite_note-20"><span class="cite-bracket">[</span>20<span class="cite-bracket">]</span></a></sup> The x86-32 implementation of Native Client is notable for its novel sandboxing method, which makes use of the x86 architecture's rarely used <a href="X86_memory_segmentation" title="X86 memory segmentation">segmentation facility</a>.<sup id="cite_ref-nacl_paper_21-0" class="reference"><a href="#cite_note-nacl_paper-21"><span class="cite-bracket">[</span>21<span class="cite-bracket">]</span></a></sup> Native Client sets up x86 segments to restrict the memory range that the sandboxed code can access. It uses a code verifier to prevent use of unsafe instructions such as those that perform system calls. To prevent the code from jumping to an unsafe instruction hidden in the middle of a safe instruction, Native Client requires that all indirect jumps be jumps to the start of 32-byte-aligned blocks, and instructions are not allowed to straddle these blocks.<sup id="cite_ref-nacl_paper_21-1" class="reference"><a href="#cite_note-nacl_paper-21"><span class="cite-bracket">[</span>21<span class="cite-bracket">]</span></a></sup> Because of these constraints, C and C++ code must be recompiled to run under Native Client, which provides customized versions of the <a href="GNU_toolchain" title="GNU toolchain">GNU toolchain</a>, specifically <a href="GNU_Compiler_Collection" title="GNU Compiler Collection">GNU Compiler Collection</a> (GCC), <a href="GNU_Binutils" title="GNU Binutils">GNU Binutils</a>, and <a href="LLVM" title="LLVM">LLVM</a>.
</p><p>Native Client is licensed under a <a href="BSD_licenses" title="BSD licenses">BSD-style license</a>.
</p><p>Native Client uses <a href="Newlib" title="Newlib">Newlib</a> as its <a href="C_standard_library" title="C standard library">C library</a>, but a port of <a href="GNU_C_Library" class="mw-redirect" title="GNU C Library">GNU C Library</a> (GNU libc) is also available.<sup id="cite_ref-22" class="reference"><a href="#cite_note-22"><span class="cite-bracket">[</span>22<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="History">History</h2></div>
<p>On 9 December 2011, Google demonstrated the readiness of the technology by announcing availability of several new Chrome-only versions of <a href="Videogame" class="mw-redirect" title="Videogame">games</a> known for their rich and <a href="Central_processing_unit" title="Central processing unit">processor</a>-intensive <a href="Computer_graphics" title="Computer graphics">graphics</a>, including <i><a href="Bastion_(video_game)" title="Bastion (video game)">Bastion</a></i> (no longer supported on the <a href="Chrome_Web_Store" title="Chrome Web Store">Chrome Web Store</a>). NaCl runs <a href="Hardware_acceleration_(computing)" class="mw-redirect" title="Hardware acceleration (computing)">hardware-accelerated</a> 3D graphics (via <a href="OpenGL_ES" title="OpenGL ES">OpenGL ES</a> 2.0), sandboxed local file storage, <a href="Dynamic_loading" title="Dynamic loading">dynamic loading</a>, full screen mode, and <a href="Computer_mouse" title="Computer mouse">mouse</a> capture. There were also plans to make NaCl available on handheld devices.<sup id="cite_ref-CNet_23-0" class="reference"><a href="#cite_note-CNet-23"><span class="cite-bracket">[</span>23<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-24" class="reference"><a href="#cite_note-24"><span class="cite-bracket">[</span>24<span class="cite-bracket">]</span></a></sup>
</p><p>Portable Native Client (PNaCl) is an architecture-independent version. PNaCl apps are <a href="Ahead-of-time_compilation" title="Ahead-of-time compilation">compiled ahead-of-time</a>. PNaCl is recommended over NaCl for most use cases.<sup id="cite_ref-25" class="reference"><a href="#cite_note-25"><span class="cite-bracket">[</span>25<span class="cite-bracket">]</span></a></sup> The general concept of NaCl (running native code in web browser) has been implemented before in <a href="ActiveX" title="ActiveX">ActiveX</a>, which, while still in use, has full access to the system (disk, memory, user-interface, registry, etc.). Native Client avoids this issue by using sandboxing.
</p><p>An alternative by Mozilla was <a href="Asm.js" title="Asm.js">asm.js</a>, which also allows applications written in <a href="C_(programming_language)" title="C (programming language)">C</a> or <a href="C%2B%2B" title="C++">C++</a> to be compiled to run in the browser and also supports ahead-of-time compilation, but is a subset of JavaScript and hence backwards-compatible with browsers that do not support it directly.
</p><p>On 12 October 2016, a comment on the Chromium issue tracker indicated that Google's Pepper and Native Client teams had been destaffed.<sup id="cite_ref-:1_4-1" class="reference"><a href="#cite_note-:1-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> On 30 May 2017, Google announced deprecation of PNaCl in favor of <a href="WebAssembly" title="WebAssembly">WebAssembly</a>.<sup id="cite_ref-:0_5-2" class="reference"><a href="#cite_note-:0-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> Although initially Google planned to remove PNaCl in first quarter of 2018,<sup id="cite_ref-:0_5-3" class="reference"><a href="#cite_note-:0-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> and later in the second quarter of 2019,<sup id="cite_ref-26" class="reference"><a href="#cite_note-26"><span class="cite-bracket">[</span>26<span class="cite-bracket">]</span></a></sup> it has been removed in June 2022 (together with <a href="Google_Chrome_App" title="Google Chrome App">Chrome Apps</a>).<sup id="cite_ref-:2_6-1" class="reference"><a href="#cite_note-:2-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-:3_7-1" class="reference"><a href="#cite_note-:3-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Pepper">Pepper</h2></div>
<div role="note" class="hatnote navigation-not-searchable">See also: <a href="NPAPI#PPAPI" title="NPAPI">NPAPI § PPAPI</a></div>
<p>NaCl denotes <a href="Sodium_chloride" title="Sodium chloride">sodium chloride</a>, common table <a href="Salt" title="Salt">salt</a>; as a <a href="Pun" title="Pun">pun</a>, the name of <a href="Black_pepper" title="Black pepper">pepper</a> was also used. Pepper API is a cross-platform, open-source API for creating Native Client modules.<sup id="cite_ref-27" class="reference"><a href="#cite_note-27"><span class="cite-bracket">[</span>27<span class="cite-bracket">]</span></a></sup> Pepper Plugin API, or PPAPI<sup id="cite_ref-28" class="reference"><a href="#cite_note-28"><span class="cite-bracket">[</span>28<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-29" class="reference"><a href="#cite_note-29"><span class="cite-bracket">[</span>29<span class="cite-bracket">]</span></a></sup> is a cross-platform API for Native Client-secured web browser plugins, first based on Netscape's <a href="NPAPI" title="NPAPI">NPAPI</a>, then rewritten from scratch. It was used in Chromium and <a href="Google_Chrome" title="Google Chrome">Google Chrome</a> to enable the PPAPI version of <a href="Adobe_Flash" title="Adobe Flash">Adobe Flash</a><sup id="cite_ref-30" class="reference"><a href="#cite_note-30"><span class="cite-bracket">[</span>30<span class="cite-bracket">]</span></a></sup> and the built-in <a href="PDF" title="PDF">PDF</a> viewer.<sup id="cite_ref-31" class="reference"><a href="#cite_note-31"><span class="cite-bracket">[</span>31<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="PPAPI">PPAPI</h3></div>
<p>On 12 August 2009, a page on Google Code introduced a new project, Pepper, and the associated Pepper Plugin API (PPAPI),<sup id="cite_ref-32" class="reference"><a href="#cite_note-32"><span class="cite-bracket">[</span>32<span class="cite-bracket">]</span></a></sup> "a set of modifications to NPAPI to make plugins more portable and more secure".<sup id="cite_ref-33" class="reference"><a href="#cite_note-33"><span class="cite-bracket">[</span>33<span class="cite-bracket">]</span></a></sup> This extension is designed specifically to ease implementing out-of-<a href="Process_(computing)" title="Process (computing)">process</a> plugin execution. Further, the goals of the project are to provide a framework for making plugins fully cross-platform. Topics considered include:
</p>
<ul><li>Uniform semantics for NPAPI across browsers.</li>
<li>Execution in a separate process from the renderer-browser.</li>
<li>Standardize rendering using the browser's compositing process.</li>
<li>Defining standardized events, and 2D rasterizing functions.</li>
<li>Initial attempt to provide 3D graphics access.</li>
<li>Plugin registry.</li></ul>
<p>The Pepper API also supports <a href="Gamepad" title="Gamepad">Gamepads</a> (version 19) and <a href="WebSocket" title="WebSocket">WebSockets</a> (version 18).<sup id="cite_ref-34" class="reference"><a href="#cite_note-34"><span class="cite-bracket">[</span>34<span class="cite-bracket">]</span></a></sup>
</p><p>As of 13 May 2010, Google's open source browser, <a href="Chromium_(web_browser)" title="Chromium (web browser)">Chromium</a>, was the only web browser to use the new browser plug-in model.<sup id="cite_ref-35" class="reference"><a href="#cite_note-35"><span class="cite-bracket">[</span>35<span class="cite-bracket">]</span></a></sup> As of 2020, Pepper is supported by Chrome, Chromium and Blink layout engine-based browsers such as Opera and Microsoft Edge.
</p><p>In August 2020, Google announced that support for PPAPI would be removed from Google Chrome and Chromium in June 2022.<sup id="cite_ref-36" class="reference"><a href="#cite_note-36"><span class="cite-bracket">[</span>36<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading4"><h4 id="PPAPI_in_Firefox">PPAPI in Firefox</h4></div>
<p><a href="Firefox" title="Firefox">Firefox</a> developers stated in 2014 that they would not support Pepper, as there were no full specification of the API beyond its implementation in Chrome, which itself was designed for use with <a href="Blink_layout_engine" class="mw-redirect" title="Blink layout engine">Blink layout engine</a> only, and had private APIs specific to the Flash Player plugin which were not documented.<sup id="cite_ref-37" class="reference"><a href="#cite_note-37"><span class="cite-bracket">[</span>37<span class="cite-bracket">]</span></a></sup> In October 2016 Mozilla announced that it had re-considered and was exploring whether to incorporate the Pepper API and PDFium in future releases of Firefox,<sup id="cite_ref-38" class="reference"><a href="#cite_note-38"><span class="cite-bracket">[</span>38<span class="cite-bracket">]</span></a></sup> however no such steps were taken. In July 2017, Adobe deprecated Flash and announced its <a href="End-of-life_product" class="mw-redirect" title="End-of-life product">end-of-life</a> in the end of 2020.<sup id="cite_ref-39" class="reference"><a href="#cite_note-39"><span class="cite-bracket">[</span>39<span class="cite-bracket">]</span></a></sup> By January 2021, Adobe Flash Player, Google Chrome, Firefox, Safari, and Windows<sup id="cite_ref-40" class="reference"><a href="#cite_note-40"><span class="cite-bracket">[</span>40<span class="cite-bracket">]</span></a></sup> received updates disabling or entirely removing Flash.
</p>
<div class="mw-heading mw-heading2"><h2 id="Applications">Applications</h2></div>
<p>One website<sup id="cite_ref-41" class="reference"><a href="#cite_note-41"><span class="cite-bracket">[</span>41<span class="cite-bracket">]</span></a></sup> used NaCL on the server to let users experiment with the <a href="Go_programming_language" class="mw-redirect" title="Go programming language">Go programming language</a> from their browsers.<sup id="cite_ref-42" class="reference"><a href="#cite_note-42"><span class="cite-bracket">[</span>42<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Usage_outside_of_web_browsers">Usage outside of web browsers</h2></div>
<p>The <a href="Open-source_software" title="Open-source software">open-source</a> <a href="Unvanquished_(video_game)" title="Unvanquished (video game)">Unvanquished</a> game makes use of Native Client in the Dæmon game engine<sup id="cite_ref-43" class="reference"><a href="#cite_note-43"><span class="cite-bracket">[</span>43<span class="cite-bracket">]</span></a></sup> in replacement of the Q3VM (<a href="Quake_III_Arena" title="Quake III Arena">Quake III</a> <a href="Virtual_machine" title="Virtual machine">virtual machine</a>).<sup id="cite_ref-44" class="reference"><a href="#cite_note-44"><span class="cite-bracket">[</span>44<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-45" class="reference"><a href="#cite_note-45"><span class="cite-bracket">[</span>45<span class="cite-bracket">]</span></a></sup> In such game engine, the Native Client sandbox is used to safely run arbitrary game code (<a href="Video_game_modding" title="Video game modding">mods</a>) downloaded from game servers. Using the Native Client technology makes possible for <a href="Gameplay" title="Gameplay">gameplay</a> developers to use the C++ language for games running in the virtual machine, to use C++ libraries, to share code between the game and the engine and to get better performance than with the Q3VM.<sup id="cite_ref-naclInGameEngine_17-1" class="reference"><a href="#cite_note-naclInGameEngine-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Reception">Reception</h2></div>
<p>Some groups of browser developers supported the Native Client technology while others did not.
</p>
<div class="mw-heading mw-heading3"><h3 id="Supporters">Supporters</h3></div>
<p>Chad Austin (of <a href="IMVU" title="IMVU">IMVU</a>) praised the way Native Client can bring high-performance applications to the web (with about 5% penalty compared to native code) in a secure way, while also accelerating the evolution of client-side applications by giving a choice of the programming language used (besides <a href="JavaScript" title="JavaScript">JavaScript</a>).<sup id="cite_ref-46" class="reference"><a href="#cite_note-46"><span class="cite-bracket">[</span>46<span class="cite-bracket">]</span></a></sup>
</p><p><a href="Id_Software" title="Id Software">Id Software</a>'s <a href="John_D._Carmack" class="mw-redirect" title="John D. Carmack">John D. Carmack</a> praised Native Client at <a href="QuakeCon" title="QuakeCon">QuakeCon</a> 2012, saying: "if you have to do something inside a browser, Native Client is much more interesting as something that started out as a really pretty darn clever x86 hack in the way that they could sandbox all of this in user mode interestingly. It's now dynamic recompilation, but something that you program in C or C++ and it compiles down to something that's going to be not your -O4 optimization level for completely native code but pretty damn close to native code. You could do all of your evil pointer chasings, and whatever you want to do as a to-the-metal game developer."<sup id="cite_ref-47" class="reference"><a href="#cite_note-47"><span class="cite-bracket">[</span>47<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Detractors">Detractors</h3></div>
<p>Other IT professionals were more critical of this sandboxing technology as it had substantial or substantive interoperability issues.
</p><p><a href="Mozilla" title="Mozilla">Mozilla</a>'s vice president of products, Jay Sullivan, said that Mozilla has no plans to run native code inside the browser, as "These native apps are just little black boxes in a webpage. [...] We really believe in HTML, and this is where we want to focus."<sup id="cite_ref-48" class="reference"><a href="#cite_note-48"><span class="cite-bracket">[</span>48<span class="cite-bracket">]</span></a></sup>
</p><p>Mozilla's <a href="Christopher_Blizzard" title="Christopher Blizzard">Christopher Blizzard</a> criticized NaCl, claiming that native code cannot evolve in the same way that the source code-driven web can. He also compared NaCl to Microsoft's <a href="ActiveX" title="ActiveX">ActiveX</a> technology, plagued with <a href="DLL_Hell" class="mw-redirect" title="DLL Hell">DLL Hell</a>.<sup id="cite_ref-Register_2-1" class="reference"><a href="#cite_note-Register-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>
</p><p><a href="H%C3%A5kon_Wium_Lie" title="Håkon Wium Lie">Håkon Wium Lie</a>, Opera's CTO, believed that "NaCl seems to be 'yearning for the bad old days, before the web'", and that "Native Client is about building a new platform – or porting an old platform into the web [...] it will bring in complexity and security issues, and it will take away focus from the web platform."<sup id="cite_ref-Register_2-2" class="reference"><a href="#cite_note-Register-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Second_generation">Second generation</h2></div>
<p>The second generation of <a href="Sandbox_(computer_security)" title="Sandbox (computer security)">sandboxing</a> developed in Google is <a href="GVisor" title="GVisor">gVisor</a>.<sup id="cite_ref-49" class="reference"><a href="#cite_note-49"><span class="cite-bracket">[</span>49<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-50" class="reference"><a href="#cite_note-50"><span class="cite-bracket">[</span>50<span class="cite-bracket">]</span></a></sup> It is intended to replace NaCl in <a href="Google_Cloud_Platform" title="Google Cloud Platform">Google Cloud</a>, to be more exact in <a href="Google_App_Engine" title="Google App Engine">Google App Engine</a>. Google has also been promoting <a href="WebAssembly" title="WebAssembly">WebAssembly</a>.<sup id="cite_ref-51" class="reference"><a href="#cite_note-51"><span class="cite-bracket">[</span>51<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1266661725">
/* start https://en.wikipedia.org/ */
.mw-parser-output .portalbox{padding:0;margin:0.5em 0;display:table;box-sizing:border-box;max-width:175px;list-style:none}.mw-parser-output .portalborder{border:1px solid var(--border-color-base,#a2a9b1);padding:0.1em;background:var(--background-color-neutral-subtle,#f8f9fa)}.mw-parser-output .portalbox-entry{display:table-row;font-size:85%;line-height:110%;height:1.9em;font-style:italic;font-weight:bold}.mw-parser-output .portalbox-image{display:table-cell;padding:0.2em;vertical-align:middle;text-align:center}.mw-parser-output .portalbox-link{display:table-cell;padding:0.2em 0.2em 0.2em 0.3em;vertical-align:middle}@media(min-width:720px){.mw-parser-output .portalleft{margin:0.5em 1em 0.5em 0}.mw-parser-output .portalright{clear:right;float:right;margin:0.5em 0 0.5em 1em}}
/* end https://en.wikipedia.org/ */
</style>
<ul><li><a href="Application_virtualization" title="Application virtualization">Application virtualization</a></li>
<li><a href="Emscripten" title="Emscripten">Emscripten</a></li>
<li><a href="Sandboxie" title="Sandboxie">Sandboxie</a>, running Windows programs in a sandbox</li>
<li><a href="WebAssembly" title="WebAssembly">WebAssembly</a>, a bytecode standard for web browsers</li>
<li><a href="XAML_Browser_Applications" title="XAML Browser Applications">XAML Browser Applications</a> (XBAP)</li></ul>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */
.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}
/* end https://en.wikipedia.org/ */
</style><div class="reflist reflist-columns references-column-width" style="column-width: 30em;">
<ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */
.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}
/* end https://en.wikipedia.org/ */
</style><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.theregister.co.uk/2011/09/16/native_client_debuts_in_chrome/">"Google's Native Client goes live in Chrome"</a>. <i><a href="The_Register" title="The Register">The Register</a></i>. 16 September 2011<span class="reference-accessdate">. Retrieved <span class="nowrap">12 March</span> 2016</span>.</cite></span>
</li>
<li id="cite_note-Register-2"><span class="mw-cite-backlink">^ <a href="#cite_ref-Register_2-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-Register_2-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-Register_2-2"><sup><i><b>c</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFMetz2011" class="citation web cs1">Metz, Cade (12 September 2011). <a rel="nofollow" class="external text" href="https://www.theregister.co.uk/2011/09/12/google_native_client_from_all_sides/">"Google Native Client: The web of the future – or the past?"</a>. The Register<span class="reference-accessdate">. Retrieved <span class="nowrap">17 September</span> 2011</span>.</cite></span>
</li>
<li id="cite_note-ZeroVM-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-ZeroVM_3-0">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20140208033325/http://zerovm.org/architecture.htm">"ZeroVM Architecture"</a>. Archived from <a rel="nofollow" class="external text" href="http://zerovm.org/architecture.htm">the original</a> on 8 February 2014<span class="reference-accessdate">. Retrieved <span class="nowrap">16 March</span> 2014</span>.</cite></span>
</li>
<li id="cite_note-:1-4"><span class="mw-cite-backlink">^ <a href="#cite_ref-:1_4-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:1_4-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://bugs.chromium.org/p/chromium/issues/detail?id=239656#c160">"Bugs.chromium.org"</a>. 12 October 2016<span class="reference-accessdate">. Retrieved <span class="nowrap">12 October</span> 2016</span>.</cite></span>
</li>
<li id="cite_note-:0-5"><span class="mw-cite-backlink">^ <a href="#cite_ref-:0_5-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:0_5-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-:0_5-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-:0_5-3"><sup><i><b>d</b></i></sup></a></span> <span class="reference-text"><cite class="citation news cs1"><a rel="nofollow" class="external text" href="https://blog.chromium.org/2017/05/goodbye-pnacl-hello-webassembly.html">"Goodbye PNaCl, Hello WebAssembly!"</a>. <i>Chromium Blog</i><span class="reference-accessdate">. Retrieved <span class="nowrap">31 May</span> 2017</span>.</cite></span>
</li>
<li id="cite_note-:2-6"><span class="mw-cite-backlink">^ <a href="#cite_ref-:2_6-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:2_6-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://blog.chromium.org/2020/08/changes-to-chrome-app-support-timeline.html">"Changes to the Chrome App Support Timeline"</a>. <i>Chromium Blog</i>. 10 August 2020.</cite></span>
</li>
<li id="cite_note-:3-7"><span class="mw-cite-backlink">^ <a href="#cite_ref-:3_7-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:3_7-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFLi2020" class="citation web cs1">Li, Abner (10 August 2020). <a rel="nofollow" class="external text" href="https://9to5google.com/2020/08/10/chrome-apps-deprecation/">"Google delays deprecation of Chrome Apps on all platforms"</a>. <i><a href="9to5Google" class="mw-redirect" title="9to5Google">9to5Google</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">2 October</span> 2021</span>.</cite></span>
</li>
<li id="cite_note-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-8">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://code.google.com/p/nativeclient/">"Google Native Client on Google Code"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">25 April</span> 2012</span>.</cite></span>
</li>
<li id="cite_note-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-9">^</a></b></span> <span class="reference-text"><cite id="CITEREFdavemichael2020" class="citation web cs1">davemichael (3 October 2020). <a rel="nofollow" class="external text" href="https://github.com/davemichael/NaCl-Quake">"GitHub - davemichael/NaCl-Quake: Quake for Native Client (based on the SDL Quake port)"</a>. <i>GitHub</i>.</cite></span>
</li>
<li id="cite_note-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-10">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://chrome.google.com/webstore/detail/the-battle-for-wesnoth/pobnonecghmlpppkkjpdiiblmakhhldb">"The Battle for Wesnoth"</a>.</cite></span>
</li>
<li id="cite_note-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-11">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://doom.pdox.net">"Index of /"</a>.</cite></span>
</li>
<li id="cite_note-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-12">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20131208080414/https://chrome.google.com/webstore/detail/lara-croft-and-the-guardi/dcfdbmpeeihbpddkneaploeinlbaaodn">"Chrome Web Store - Lara Croft and the Guardian of Light"</a>. Archived from <a rel="nofollow" class="external text" href="https://chrome.google.com/webstore/detail/lara-croft-and-the-guardi/dcfdbmpeeihbpddkneaploeinlbaaodn">the original</a> on 8 December 2013<span class="reference-accessdate">. Retrieved <span class="nowrap">26 November</span> 2013</span>.</cite></span>
</li>
<li id="cite_note-13"><span class="mw-cite-backlink"><b><a href="#cite_ref-13">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20160312080315/https://chrome.google.com/webstore/detail/from-dust/anelkojiepicmcldgnmkplocifmegpfj">"From Dust"</a>. Archived from <a rel="nofollow" class="external text" href="https://chrome.google.com/webstore/detail/from-dust/anelkojiepicmcldgnmkplocifmegpfj">the original</a> on 12 March 2016<span class="reference-accessdate">. Retrieved <span class="nowrap">24 February</span> 2016</span>.</cite></span>
</li>
<li id="cite_note-announcement-14"><span class="mw-cite-backlink"><b><a href="#cite_ref-announcement_14-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFChen2008" class="citation web cs1">Chen, Brad (8 December 2008). <a rel="nofollow" class="external text" href="http://googlecode.blogspot.com/2008/12/native-client-technology-for-running.html">"Native Client: A Technology for Running Native Code on the Web"</a>. Google-code-updates.blogspot.com<span class="reference-accessdate">. Retrieved <span class="nowrap">25 April</span> 2012</span>.</cite></span>
</li>
<li id="cite_note-15"><span class="mw-cite-backlink"><b><a href="#cite_ref-15">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://blog.chromium.org/2011/08/native-client-brings-sandboxed-native.html">"The Chromium Blog: Native Client Brings Sandboxed Native Code to Chrome Web Store Apps"</a>. Blog.chromium.org. 18 August 2011<span class="reference-accessdate">. Retrieved <span class="nowrap">25 April</span> 2012</span>.</cite></span>
</li>
<li id="cite_note-16"><span class="mw-cite-backlink"><b><a href="#cite_ref-16">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://blog.chromium.org/2013/11/portable-native-client-pinnacle-of.html">"Google Code Blog: Portable Native Client: The "pinnacle" of speed, security, and portability"</a>. blog.chromium.org. 12 November 2013<span class="reference-accessdate">. Retrieved <span class="nowrap">16 March</span> 2014</span>.</cite></span>
</li>
<li id="cite_note-naclInGameEngine-17"><span class="mw-cite-backlink">^ <a href="#cite_ref-naclInGameEngine_17-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-naclInGameEngine_17-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.phoronix.com/news/MTYzMDk">"Unvanquished Continues Work On Its PNaCl Support"</a>. <i><a href="Phoronix" class="mw-redirect" title="Phoronix">Phoronix</a></i>. 15 March 2014<span class="reference-accessdate">. Retrieved <span class="nowrap">3 December</span> 2024</span>. <q>PNaCl sandboxes allow game-play developers to use modern C++ and C/C++ libraries directly within their virtual machines and will allow for better code sharing between the engine code and game logic. PNaCl is also reported to offer better performance than the original Quake III virtual machines.</q></cite></span>
</li>
<li id="cite_note-18"><span class="mw-cite-backlink"><b><a href="#cite_ref-18">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.h-online.com/open/news/item/Google-s-Native-Client-goes-ARM-and-beyond-957478.html">"Google's Native Client goes ARM and beyond"</a>. The H. 18 March 2010<span class="reference-accessdate">. Retrieved <span class="nowrap">19 May</span> 2010</span>.</cite></span>
</li>
<li id="cite_note-19"><span class="mw-cite-backlink"><b><a href="#cite_ref-19">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20120502135033/http://nativeclient.googlecode.com/svn/data/site/pnacl.pdf">"PNaCl: Portable Native Client Executables"</a> <span class="cs1-format">(PDF)</span>. Archived from <a rel="nofollow" class="external text" href="http://nativeclient.googlecode.com/svn/data/site/pnacl.pdf">the original</a> <span class="cs1-format">(PDF)</span> on 2 May 2012<span class="reference-accessdate">. Retrieved <span class="nowrap">25 April</span> 2012</span>.</cite></span>
</li>
<li id="cite_note-20"><span class="mw-cite-backlink"><b><a href="#cite_ref-20">^</a></b></span> <span class="reference-text"><cite id="CITEREFSehrMuthBiffleKhimenko2010" class="citation web cs1">Sehr, David; Muth, Robert; Biffle, Cliff L.; Khimenko, Victor; Pasko, Egor; Yee, Bennet; Schimpf, Karl; Chen, Brad (2010). <a rel="nofollow" class="external text" href="http://research.google.com/pubs/pub35649.html">"Adapting Software Fault Isolation to Contemporary CPU Architectures"</a>. 19th USENIX Security Symposium<span class="reference-accessdate">. Retrieved <span class="nowrap">31 July</span> 2011</span>.</cite></span>
</li>
<li id="cite_note-nacl_paper-21"><span class="mw-cite-backlink">^ <a href="#cite_ref-nacl_paper_21-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-nacl_paper_21-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFYeeSehrDardykChen2009" class="citation web cs1">Yee, Bennet; Sehr, David; Dardyk, Greg; Chen, Brad; Muth, Robert; Ormandy, Tavis; Okasaka, Shiki; Narula, Neha; Fullagar, Nicholas (2009). <a rel="nofollow" class="external text" href="http://research.google.com/pubs/pub34913.html">"Native Client: A Sandbox for Portable, Untrusted x86 Native Code"</a>. IEEE Symposium on Security and Privacy (Oakland'09)<span class="reference-accessdate">. Retrieved <span class="nowrap">31 July</span> 2011</span>.</cite></span>
</li>
<li id="cite_note-22"><span class="mw-cite-backlink"><b><a href="#cite_ref-22">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://developer.chrome.com/native-client/devguide/devcycle/building">"Native Client: Building"</a>. developer.chrome.com<span class="reference-accessdate">. Retrieved <span class="nowrap">16 March</span> 2014</span>.</cite></span>
</li>
<li id="cite_note-CNet-23"><span class="mw-cite-backlink"><b><a href="#cite_ref-CNet_23-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFRosenblatt2011" class="citation web cs1">Rosenblatt, Seth (9 December 2011). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20120828174434/http://download.cnet.com/8301-2007_4-57340015-12/native-client-turns-chrome-into-high-end-gaming-platform/">"Native Client turns Chrome into high-end gaming platform"</a>. CNET. Archived from <a rel="nofollow" class="external text" href="http://download.cnet.com/8301-2007_4-57340015-12/native-client-turns-chrome-into-high-end-gaming-platform/">the original</a> on 28 August 2012<span class="reference-accessdate">. Retrieved <span class="nowrap">9 December</span> 2011</span>.</cite></span>
</li>
<li id="cite_note-24"><span class="mw-cite-backlink"><b><a href="#cite_ref-24">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://googlecode.blogspot.com/2011/12/games-apps-and-runtimes-come-to-native.html">"Google Code Blog: Games, apps and runtimes come to Native Client"</a>. Googlecode.blogspot.com. 9 December 2011<span class="reference-accessdate">. Retrieved <span class="nowrap">25 April</span> 2012</span>.</cite></span>
</li>
<li id="cite_note-25"><span class="mw-cite-backlink"><b><a href="#cite_ref-25">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://developer.chrome.com/native-client/nacl-and-pnacl#when-to-use-pnacl">"NaCl and PNaCl"</a>.</cite></span>
</li>
<li id="cite_note-26"><span class="mw-cite-backlink"><b><a href="#cite_ref-26">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://developer.chrome.com/native-client/migration">"WebAssembly Migration Guide - Google Chrome"</a>. <i>developer.chrome.com</i><span class="reference-accessdate">. Retrieved <span class="nowrap">20 December</span> 2018</span>.</cite></span>
</li>
<li id="cite_note-27"><span class="mw-cite-backlink"><b><a href="#cite_ref-27">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20140228181744/http://developer.chrome.com/native-client/overview">"Technical Overview"</a>. Archived from <a rel="nofollow" class="external text" href="https://developer.chrome.com/native-client/overview">the original</a> on 28 February 2014.</cite></span>
</li>
<li id="cite_note-28"><span class="mw-cite-backlink"><b><a href="#cite_ref-28">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20160909014923/https://developer.chrome.com/native-client/pepper_stable/index">"Pepper Plugin API project at"</a>. Archived from <a rel="nofollow" class="external text" href="https://developer.chrome.com/native-client/pepper_stable/index">the original</a> on 9 September 2016<span class="reference-accessdate">. Retrieved <span class="nowrap">25 April</span> 2012</span>.</cite></span>
</li>
<li id="cite_note-29"><span class="mw-cite-backlink"><b><a href="#cite_ref-29">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://src.chromium.org/viewvc/chrome/trunk/src/ppapi/">"Chrome Source: Index of /trunk/src/ppapi"</a>. Src.chromium.org<span class="reference-accessdate">. Retrieved <span class="nowrap">25 April</span> 2012</span>.</cite></span>
</li>
<li id="cite_note-30"><span class="mw-cite-backlink"><b><a href="#cite_ref-30">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://blog.chromium.org/2012/08/the-road-to-safer-more-stable-and.html">"The road to safer, more stable, and flashier Flash"</a>. 8 August 2012<span class="reference-accessdate">. Retrieved <span class="nowrap">10 August</span> 2013</span>.</cite></span>
</li>
<li id="cite_note-31"><span class="mw-cite-backlink"><b><a href="#cite_ref-31">^</a></b></span> <span class="reference-text"><cite id="CITEREFMetz2010" class="citation web cs1">Metz, Cade (18 June 2010). <a rel="nofollow" class="external text" href="https://www.theregister.co.uk/2010/06/18/chrome_dev_builds_get_built_in_pdf_reader/">"Google hugs Adobe harder with Chrome-PDF merge"</a>. The Register<span class="reference-accessdate">. Retrieved <span class="nowrap">25 April</span> 2012</span>.</cite></span>
</li>
<li id="cite_note-32"><span class="mw-cite-backlink"><b><a href="#cite_ref-32">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.chromium.org/nativeclient/getting-started/getting-started-background-and-basics#TOC-Pepper-Plugin-API-PPAPI-">"Getting Started: Background and Basics – The Chromium Projects"</a>. Chromium.org<span class="reference-accessdate">. Retrieved <span class="nowrap">25 April</span> 2012</span>.</cite></span>
</li>
<li id="cite_note-33"><span class="mw-cite-backlink"><b><a href="#cite_ref-33">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://code.google.com/p/ppapi/wiki/Concepts">"Pepper.wiki"</a>. 24 February 2012<span class="reference-accessdate">. Retrieved <span class="nowrap">25 April</span> 2012</span>.</cite></span>
</li>
<li id="cite_note-34"><span class="mw-cite-backlink"><b><a href="#cite_ref-34">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://developer.chrome.com/native-client/sdk/release-notes">"Release Notes"</a>.</cite></span>
</li>
<li id="cite_note-35"><span class="mw-cite-backlink"><b><a href="#cite_ref-35">^</a></b></span> <span class="reference-text"><cite id="CITEREFMetz2010" class="citation web cs1">Metz, Cade (13 May 2010). <a rel="nofollow" class="external text" href="https://www.theregister.co.uk/2010/05/13/google_native_client_sdk/">"Google heats up native code for Chrome OS"</a>. Theregister.co.uk<span class="reference-accessdate">. Retrieved <span class="nowrap">25 April</span> 2012</span>.</cite></span>
</li>
<li id="cite_note-36"><span class="mw-cite-backlink"><b><a href="#cite_ref-36">^</a></b></span> <span class="reference-text"><cite id="CITEREFAnthony_Laforge2020" class="citation web cs1">Anthony Laforge (10 August 2020). <a rel="nofollow" class="external text" href="https://blog.chromium.org/2020/08/changes-to-chrome-app-support-timeline.html">"Changes to the Chrome App Support Timeline"</a>. <i>Chromium Blog</i>.</cite></span>
</li>
<li id="cite_note-37"><span class="mw-cite-backlink"><b><a href="#cite_ref-37">^</a></b></span> <span class="reference-text"><cite id="CITEREFZbarsky" class="citation web cs1">Zbarsky, Boris. <a rel="nofollow" class="external text" href="https://bugzilla.mozilla.org/show_bug.cgi?id=729481#c83">"Bug 729481 - Support the "Pepper" Plugin api"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">15 April</span> 2016</span>.</cite></span>
</li>
<li id="cite_note-38"><span class="mw-cite-backlink"><b><a href="#cite_ref-38">^</a></b></span> <span class="reference-text"><cite id="CITEREFMetz2016" class="citation web cs1">Metz, Cade (3 October 2016). <a rel="nofollow" class="external text" href="https://wiki.mozilla.org/Mortar_Project">"Project Mortar"</a>. Mozilla<span class="reference-accessdate">. Retrieved <span class="nowrap">30 October</span> 2016</span>.</cite></span>
</li>
<li id="cite_note-39"><span class="mw-cite-backlink"><b><a href="#cite_ref-39">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20171202123704/https://theblog.adobe.com/adobe-flash-update/">"Flash & The Future of Interactive Content"</a>. <a href="Adobe_Inc." title="Adobe Inc.">Adobe Inc.</a> 25 July 2017. Archived from <a rel="nofollow" class="external text" href="https://theblog.adobe.com/adobe-flash-update/">the original</a> on 2 December 2017<span class="reference-accessdate">. Retrieved <span class="nowrap">31 July</span> 2023</span>.</cite></span>
</li>
<li id="cite_note-40"><span class="mw-cite-backlink"><b><a href="#cite_ref-40">^</a></b></span> <span class="reference-text"><cite id="CITEREFSalter2021" class="citation web cs1">Salter, Jim (4 May 2021). <a rel="nofollow" class="external text" href="https://arstechnica.com/gadgets/2021/05/microsoft-will-remove-adobe-flash-from-windows-10-this-summer/">"Goodbye again, Flash—Microsoft makes removal from Windows 10 mandatory"</a>. <i>Ars Technica</i><span class="reference-accessdate">. Retrieved <span class="nowrap">1 August</span> 2023</span>.</cite></span>
</li>
<li id="cite_note-41"><span class="mw-cite-backlink"><b><a href="#cite_ref-41">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://play.golang.org">"The Go Playground"</a>.</cite></span>
</li>
<li id="cite_note-42"><span class="mw-cite-backlink"><b><a href="#cite_ref-42">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://blog.golang.org/playground#TOC_3.">"Inside the Go Playground - The Go Blog"</a>. <i>blog.golang.org</i><span class="reference-accessdate">. Retrieved <span class="nowrap">27 August</span> 2016</span>.</cite></span>
</li>
<li id="cite_note-43"><span class="mw-cite-backlink"><b><a href="#cite_ref-43">^</a></b></span> <span class="reference-text"><cite id="CITEREFLarabel2015" class="citation web cs1">Larabel, Michael (9 July 2015). <a rel="nofollow" class="external text" href="https://www.phoronix.com/news/Unvanquished-Alpha-41">"Unvanquished Alpha 41 Released, Still Moving Towards NaCl VM Usage"</a>. <i><a href="Phoronix" class="mw-redirect" title="Phoronix">Phoronix</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">3 December</span> 2024</span>. <q>They've continued moving along with their open-source game and Daemon engine. […] their libRocket implementation has moved into the NaCl VM.</q></cite></span>
</li>
<li id="cite_note-44"><span class="mw-cite-backlink"><b><a href="#cite_ref-44">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.phoronix.com/news/MTYzMDk">"Unvanquished Continues Work On Its PNaCl Support"</a>. <i><a href="Phoronix" class="mw-redirect" title="Phoronix">Phoronix</a></i>. 15 March 2014<span class="reference-accessdate">. Retrieved <span class="nowrap">3 December</span> 2024</span>. <q>Open-source Unvanquished developers continue working on support for using Google's Portable Native Client (PNaCl) to replace Quake III QVMs.</q></cite></span>
</li>
<li id="cite_note-45"><span class="mw-cite-backlink"><b><a href="#cite_ref-45">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.phoronix.com/news/MTg1NzA">"Unvanquished Alpha 34 Brings Fixes, Still Being Ported To PNaCl"</a>. <i><a href="Phoronix" class="mw-redirect" title="Phoronix">Phoronix</a></i>. 8 December 2014<span class="reference-accessdate">. Retrieved <span class="nowrap">3 December</span> 2024</span>. <q>Under the hood, they remain hard at work on porting the game logic from QVMs to Portable Native Client (PNaCl).</q></cite></span>
</li>
<li id="cite_note-46"><span class="mw-cite-backlink"><b><a href="#cite_ref-46">^</a></b></span> <span class="reference-text"><cite id="CITEREFAustin2011" class="citation web cs1">Austin, Chad (8 January 2011). <a rel="nofollow" class="external text" href="http://chadaustin.me/2011/01/in-defense-of-language-democracy/">"Chad Austin: In Defense of Language Democracy (Or: Why the Browser Needs a Virtual Machine)"</a>. Chadaustin.me<span class="reference-accessdate">. Retrieved <span class="nowrap">25 April</span> 2012</span>.</cite></span>
</li>
<li id="cite_note-47"><span class="mw-cite-backlink"><b><a href="#cite_ref-47">^</a></b></span> <span class="reference-text"><cite id="CITEREFCarmack2012" class="citation web cs1">Carmack, John (3 August 2012). <a rel="nofollow" class="external text" href="https://www.youtube.com/watch?v=wt-iVFxgFWk&t=2h36m18s">"QuakeCon 2012"</a>. youtube.com<span class="reference-accessdate">. Retrieved <span class="nowrap">26 August</span> 2012</span>.</cite></span>
</li>
<li id="cite_note-48"><span class="mw-cite-backlink"><b><a href="#cite_ref-48">^</a></b></span> <span class="reference-text"><cite id="CITEREFMetz2010" class="citation web cs1">Metz, Cade (24 June 2010). <a rel="nofollow" class="external text" href="https://www.theregister.co.uk/2010/06/24/jay_sullivan_on_firefox/">"Mozilla: Our browser will not run native code"</a>. The Register<span class="reference-accessdate">. Retrieved <span class="nowrap">25 April</span> 2012</span>.</cite></span>
</li>
<li id="cite_note-49"><span class="mw-cite-backlink"><b><a href="#cite_ref-49">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://news.ycombinator.com/item?id=17810591">"Beta release of PHP 7.2 in the Google App Engine standard environment | Hacker News"</a>.</cite></span>
</li>
<li id="cite_note-50"><span class="mw-cite-backlink"><b><a href="#cite_ref-50">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/google/gvisor">"Google/Gvisor"</a>. <i><a href="GitHub" title="GitHub">GitHub</a></i>. 15 October 2021.</cite></span>
</li>
<li id="cite_note-51"><span class="mw-cite-backlink"><b><a href="#cite_ref-51">^</a></b></span> <span class="reference-text"><cite id="CITEREFAvram2017" class="citation web cs1">Avram, Abel (31 May 2017). <a rel="nofollow" class="external text" href="https://www.infoq.com/news/2017/05/pnacl-webassembly-google/">"Google Is to Remove Support for PNaCl"</a>. <i>InfoQ</i><span class="reference-accessdate">. Retrieved <span class="nowrap">1 August</span> 2020</span>. <q>As a replacement, Google is now pushing WebAssembly.</q></cite></span>
</li>
</ol></div>
<div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2></div>
<ul><li><span class="official-website"><span class="url"><a rel="nofollow" class="external text" href="https://developer.chrome.com/docs/native-client/">Official website</a></span></span> </li>
<li><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://bugs.chromium.org/p/nativeclient/issues/list">"Issues - nativeclient"</a>. <i>bugs.chromium.org</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2 July</span> 2022</span>.</cite></li>
<li><a rel="nofollow" class="external text" href="https://www.youtube.com/watch?v=5RFjOec-TI0"><span class="">Google I/O 2013 - Introduction to Portable Native Client (PNaCl)</span></a> on <a href="YouTube_video_(identifier)" class="mw-redirect" title="YouTube video (identifier)">YouTube</a></li>
<li><a rel="nofollow" class="external text" href="https://www.youtube.com/watch?v=2xV_0pTpNj0"><span class="">Google I/O 2009 Native Code for Compute Intensive Web Apps</span></a> on <a href="YouTube_video_(identifier)" class="mw-redirect" title="YouTube video (identifier)">YouTube</a> – Technical talk at <a href="Google_I/O" title="Google I/O">Google I/O</a> 2009</li>
<li><a rel="nofollow" class="external text" href="https://code.google.com/p/naclports/wiki/PortList">A list of OSS projects ported to Native Client</a></li>
<li><a rel="nofollow" class="external text" href="https://chromium.googlesource.com/native_client/src/native_client.git">Native Client source code in Git</a></li>
<li><a rel="nofollow" class="external text" href="https://kangz.net/posts/2014/03/15/moving-the-server-side-gamelogic-to-pnacl/first=Corentin">Game engine-focused introduction to Native Client with a comparison between the Quake3 Virtual Machine and PNaCL</a><br><cite id="CITEREFWallez2014" class="citation web cs1">Wallez, Corentin (15 March 2014). <a rel="nofollow" class="external text" href="https://kangz.net/posts/2014/03/15/moving-the-server-side-gamelogic-to-pnacl/">"Moving the server-side gamelogic to PNaCl"</a><span class="reference-accessdate">. Retrieved <span class="nowrap">3 December</span> 2024</span>.</cite></li></ul>
<div class="mw-heading mw-heading3"><h3 id="Examples">Examples</h3></div>
<ul><li><a rel="nofollow" class="external text" href="http://folding.stanford.edu/nacl/">Folding@home</a></li>
<li><a rel="nofollow" class="external text" href="https://gonativeclient.appspot.com/demo">PNaCl examples</a> (runs in Chrome 31+, PNaCl, i.e. no installation needed)</li>
<li><a rel="nofollow" class="external text" href="https://developer.chrome.com/native-client/sdk/examples">Native Client SDK Gallery</a></li>
<li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20180627170813/http://www.torapp.info/">torapp.info</a>, vector editor, especially powerful for security printing (not PNaCl)</li>
<li><a rel="nofollow" class="external text" href="http://www.naclbox.com/">NACLBox</a>, a port of <a href="DOSBox" title="DOSBox">DOSBox</a> to Native Client (PNaCl)</li>
<li><a rel="nofollow" class="external text" href="https://chrome.google.com/webstore/detail/moehcjggbedbobepfihdamhnlneanioe">SodaSynth</a>, a synthesizer for Native Client (not PNaCl)</li>
<li><a rel="nofollow" class="external text" href="https://luzbel.github.io/vigasocosdl-la-abadia-del-crimen.pruebas/">Abadía del crimen</a>, a port of the SDL version of Vigasoco (remake of <a href="La_Abad%C3%ADa_del_Crimen" title="La Abadía del Crimen">La Abadía del Crimen</a>) to Native Client (PNaCl)</li>
<li><a rel="nofollow" class="external text" href="http://coldev.webs.com/">Bennugd</a>, a port of Bennugd Videogames examples to Native Client (PNaCl)</li></ul>
<div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1129693374">
/* start https://en.wikipedia.org/ */
.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}
/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1236075235">
/* start https://en.wikipedia.org/ */
.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}
/* end https://en.wikipedia.org/ */
</style></div><div role="navigation" class="navbox" aria-labelledby="Google_free_and_open-source_software55" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><style data-mw-deduplicate="TemplateStyles:r1239400231">
/* start https://en.wikipedia.org/ */
.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}
/* end https://en.wikipedia.org/ */
</style><div id="Google_free_and_open-source_software55" style="font-size:114%;margin:0 4em"><a href="Google" title="Google">Google</a> free and open-source software</div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">Software</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%">Applications</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Chromium_(web_browser)" title="Chromium (web browser)">Chromium</a></li>
<li><a href="Gemini_(language_model)" title="Gemini (language model)">Gemma</a></li>
<li><a href="OpenRefine" title="OpenRefine">OpenRefine</a></li>
<li><a href="Tesseract_(software)" title="Tesseract (software)">Tesseract</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Programming languages</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Carbon_(programming_language)" title="Carbon (programming language)">Carbon</a></li>
<li><a href="Dart_(programming_language)" title="Dart (programming language)">Dart</a></li>
<li><a href="Go_(programming_language)" title="Go (programming language)">Go</a></li>
<li><a href="Sawzall_(programming_language)" title="Sawzall (programming language)">Sawzall</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Frameworks and<br>development tools</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Accelerated_Mobile_Pages" title="Accelerated Mobile Pages">AMP</a></li>
<li><a href="Angular_(web_framework)" title="Angular (web framework)">Angular</a></li>
<li><a href="AngularJS" title="AngularJS">AngularJS</a></li>
<li><a href="Apache_Beam" title="Apache Beam">Beam</a></li>
<li><a href="Bazel_(software)" title="Bazel (software)">Bazel</a></li>
<li><a href="Blockly" title="Blockly">Blockly</a></li>
<li><a href="Brotli" title="Brotli">Brotli</a></li>
<li><a href="Google_Closure_Tools" title="Google Closure Tools">Closure Tools</a></li>
<li><a href="Cpplint" title="Cpplint">Cpplint</a></li>
<li><a href="FlatBuffers" title="FlatBuffers">FlatBuffers</a></li>
<li><a href="Flutter_(software)" title="Flutter (software)">Flutter</a></li>
<li><a href="Ganeti" title="Ganeti">Ganeti</a></li>
<li><a href="Gears_(software)" title="Gears (software)">Gears</a></li>
<li><a href="Gerrit_(software)" title="Gerrit (software)">Gerrit</a></li>
<li><a href="GLOP" title="GLOP">GLOP</a></li>
<li><a href="GRPC" title="GRPC">gRPC</a></li>
<li><a href="Gson" title="Gson">Gson</a></li>
<li><a href="Google_Guava" title="Google Guava">Guava</a></li>
<li><a href="Guetzli" title="Guetzli">Guetzli</a></li>
<li><a href="Google_Guice" title="Google Guice">Guice</a></li>
<li><a href="GVisor" title="GVisor">gVisor</a></li>
<li><a href="Kubernetes" title="Kubernetes">Kubernetes</a></li>
<li><a href="LevelDB" title="LevelDB">LevelDB</a></li>
<li><a href="Libvpx" title="Libvpx">libvpx</a></li>
<li><a href="Lighthouse_(software)" title="Lighthouse (software)">Lighthouse</a></li>
<li><a href="Namebench" title="Namebench">Namebench</a></li>
<li><a href="Nomulus" title="Nomulus">Nomulus</a></li>
<li><a href="OR-Tools" title="OR-Tools">OR-Tools</a></li>
<li><a href="Polymer_(library)" title="Polymer (library)">Polymer</a></li>
<li><a href="Protocol_Buffers" title="Protocol Buffers">Protocol Buffers</a></li>
<li><a href="TensorFlow" title="TensorFlow">TensorFlow</a></li>
<li><a href="V8_(JavaScript_engine)" title="V8 (JavaScript engine)">V8</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Operating systems</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Android_(operating_system)" title="Android (operating system)">Android</a></li>
<li><a href="ChromiumOS" title="ChromiumOS">ChromiumOS</a></li>
<li><a href="Fuchsia_(operating_system)" title="Fuchsia (operating system)">Fuchsia</a></li>
<li><a href="GLinux" title="GLinux">gLinux</a></li>
<li><a href="Goobuntu" title="Goobuntu">Goobuntu</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Related</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Google_Code-in" title="Google Code-in">Code-in</a></li>
<li><i><a href="Google_LLC_v._Oracle_America%2C_Inc." title="Google LLC v. Oracle America, Inc.">Google LLC v. Oracle America, Inc.</a></i></li>
<li><a href="Open_Source_Security_Foundation" title="Open Source Security Foundation">Open Source Security Foundation</a></li>
<li><a href="Google_Summer_of_Code" title="Google Summer of Code">Summer of Code</a></li></ul>
</div></td></tr></tbody></table></div>
<div class="navbox-styles"></div><div role="navigation" class="navbox" aria-labelledby="Web_interfaces26" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div id="Web_interfaces26" style="font-size:114%;margin:0 4em"><a href="Web_API" title="Web API">Web interfaces</a></div></th></tr><tr><td colspan="2" class="navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><td class="navbox-abovebelow" colspan="2" style="font-weight:bold"><div id="Server-side154"><a href="Server-side" class="mw-redirect" title="Server-side">Server-side</a></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Communication_protocol" title="Communication protocol">Protocols</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="HTTP" title="HTTP">HTTP</a>
<ul><li><a href="HTTP/2" title="HTTP/2">v2</a></li>
<li><a href="HTTP/3" title="HTTP/3">v3</a></li>
<li><a href="HTTPS" title="HTTPS">Encryption</a></li>
<li><a href="WebDAV" title="WebDAV">WebDAV</a></li></ul></li>
<li><a href="Common_Gateway_Interface" title="Common Gateway Interface">CGI</a></li>
<li><a href="Simple_Common_Gateway_Interface" title="Simple Common Gateway Interface">SCGI</a></li>
<li><a href="FastCGI" title="FastCGI">FCGI</a></li>
<li><a href="Apache_JServ_Protocol" title="Apache JServ Protocol">AJP</a></li>
<li><a href="Web_Services_for_Remote_Portlets" title="Web Services for Remote Portlets">WSRP</a></li>
<li><a href="WebSocket" title="WebSocket">WebSocket</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Server_application_programming_interface" title="Server application programming interface">Server APIs</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Netscape_Server_Application_Programming_Interface" title="Netscape Server Application Programming Interface">C NSAPI</a></li>
<li><a href="Apache_HTTP_Server#Feature_overview" title="Apache HTTP Server">C ASAPI</a></li>
<li><a href="Internet_Server_Application_Programming_Interface" title="Internet Server Application Programming Interface">C ISAPI</a></li>
<li><a href="Active_Server_Pages" title="Active Server Pages">COM ASP</a></li>
<li><a href="Jakarta_Servlet" title="Jakarta Servlet">Jakarta Servlet</a>
<ul><li><a href="Web_container" title="Web container">container</a></li></ul></li>
<li><a href="Open_Web_Interface_for_.NET" title="Open Web Interface for .NET">CLI OWIN</a></li>
<li><a href="HTTP_handler" title="HTTP handler">ASP.NET Handler</a></li>
<li><a href="Web_Server_Gateway_Interface" title="Web Server Gateway Interface">Python WSGI</a></li>
<li><a href="Asynchronous_Server_Gateway_Interface" title="Asynchronous Server Gateway Interface">Python ASGI</a></li>
<li><a href="Rack_(web_server_interface)" title="Rack (web server interface)">Ruby Rack</a></li>
<li><a href="JSGI" title="JSGI">JavaScript JSGI</a></li>
<li><a href="Plack_(software)#PSGI" title="Plack (software)">Perl PSGI</a></li>
<li><a href="Java_Portlet_Specification" title="Java Portlet Specification">Portlet</a>
<ul><li><a href="Java_Portlet_Specification" title="Java Portlet Specification">container</a></li></ul></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="List_of_Apache_modules" title="List of Apache modules">Apache modules</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Server_Side_Includes" title="Server Side Includes">mod_include</a></li>
<li><a href="Mod_jk" class="mw-redirect" title="Mod jk">mod_jk</a></li>
<li><a href="Mod_lisp" title="Mod lisp">mod_lisp</a></li>
<li><a href="Mod_mono" title="Mod mono">mod_mono</a></li>
<li><a href="Mod_parrot" class="mw-redirect" title="Mod parrot">mod_parrot</a></li>
<li><a href="Mod_perl" title="Mod perl">mod_perl</a></li>
<li><a href="PHP" title="PHP">mod_php</a></li>
<li><a href="Mod_proxy" title="Mod proxy">mod_proxy</a></li>
<li><a href="Mod_python" title="Mod python">mod_python</a></li>
<li><a href="Mod_wsgi" title="Mod wsgi">mod_wsgi</a></li>
<li><a href="Mod_ruby" title="Mod ruby">mod_ruby</a></li>
<li><a href="Phusion_Passenger" title="Phusion Passenger">Phusion Passenger</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Topics</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Web_service" title="Web service">Web service</a> vs. <a href="Web_resource" title="Web resource">Web resource</a></li>
<li><a href="Web-oriented_architecture" title="Web-oriented architecture">WOA</a> vs. <a href="Resource-oriented_architecture" title="Resource-oriented architecture">ROA</a></li>
<li><a href="Open_API" title="Open API">Open API</a></li>
<li><a href="Webhook" title="Webhook">Webhook</a></li>
<li><a href="Application_server" title="Application server">Application server</a>
<ul><li><a href="List_of_application_servers" title="List of application servers">comparison</a></li></ul></li>
<li><a href="Server-side_scripting" title="Server-side scripting">Scripting</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><td colspan="2" class="navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><td class="navbox-abovebelow" colspan="2" style="font-weight:bold"><div id="Client-side89"><a href="Client-side" class="mw-redirect" title="Client-side">Client-side</a></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Plug-in_(computing)" title="Plug-in (computing)">Browser APIs</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="NPAPI" title="NPAPI">C NPAPI</a>
<ul><li><a href="NPAPI#LiveConnect" title="NPAPI">LiveConnect</a></li>
<li><a href="NPAPI#XPConnect" title="NPAPI">XPConnect</a></li></ul></li>
<li><a href="NPAPI#NPRuntime" title="NPAPI">C NPRuntime</a></li>
<li><a class="mw-selflink-fragment" href="#Pepper">C PPAPI</a>
<ul></ul></li>
<li><a href="ActiveX" title="ActiveX">ActiveX</a></li>
<li><a href="Browser_Helper_Object" title="Browser Helper Object">BHO</a></li>
<li><a href="XAML_Browser_Applications" title="XAML Browser Applications">XBAP</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Web_API#Client_side" title="Web API">Web APIs</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="WHATWG" title="WHATWG">WHATWG</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="HTML_audio" title="HTML audio">Audio</a></li>
<li><a href="Canvas_element" title="Canvas element">Canvas</a></li>
<li><a href="Document_Object_Model" title="Document Object Model">DOM</a></li>
<li><a href="Server-sent_events" title="Server-sent events">SSE</a></li>
<li><a href="HTML_video" title="HTML video">Video</a></li>
<li><a href="WebSocket" title="WebSocket">WebSockets</a></li>
<li><a href="Web_Messaging" title="Web Messaging">Web messaging</a></li>
<li><a href="Web_storage" title="Web storage">Web storage</a></li>
<li><a href="Web_worker" title="Web worker">Web worker</a></li>
<li><a href="XMLHttpRequest" title="XMLHttpRequest">XMLHttpRequest</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="World_Wide_Web_Consortium" title="World Wide Web Consortium">W3C</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="DOM_event" title="DOM event">DOM events</a></li>
<li><a href="Encrypted_Media_Extensions" title="Encrypted Media Extensions">EME</a></li>
<li><a href="HTML5_File_API" title="HTML5 File API">File</a></li>
<li><a href="W3C_Geolocation_API" title="W3C Geolocation API">Geolocation</a></li>
<li><a href="Indexed_Database_API" title="Indexed Database API">IndexedDB</a></li>
<li><a href="Media_Source_Extensions" title="Media Source Extensions">MSE</a></li>
<li><a href="SVG" title="SVG">SVG</a></li>
<li><a href="WebAssembly" title="WebAssembly">WebAssembly</a></li>
<li><a href="WebAuthn" title="WebAuthn">WebAuthn</a></li>
<li><a href="WebGPU" title="WebGPU">WebGPU</a></li>
<li><a href="WebRTC" title="WebRTC">WebRTC</a></li>
<li><a href="WebXR" title="WebXR">WebXR</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Khronos_Group" title="Khronos Group">Khronos</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="WebCL" title="WebCL">WebCL</a></li>
<li><a href="WebGL" title="WebGL">WebGL</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Others</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Gears_(software)" title="Gears (software)">Gears</a></li>
<li><a href="Web_SQL_Database" title="Web SQL Database">Web SQL Database</a> (formerly W3C)</li>
<li><a href="WebUSB" title="WebUSB">WebUSB</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Topics</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Ajax_(programming)" title="Ajax (programming)">Ajax</a> and <a href="Remote_scripting" title="Remote scripting">Remote scripting</a> vs. <a href="Dynamic_HTML" title="Dynamic HTML">DHTML</a></li>
<li><a href="Browser_extension" title="Browser extension">Browser extension</a></li>
<li><a href="Cross-site_scripting" title="Cross-site scripting">Cross-site scripting</a> and <a href="Cross-origin_resource_sharing" title="Cross-origin resource sharing">CORS</a></li>
<li><a href="Hydration_(web_development)" title="Hydration (web development)">Hydration</a></li>
<li><a href="Mashup_(web_application_hybrid)" title="Mashup (web application hybrid)">Mashup</a></li>
<li><a href="Client-side_persistent_data" title="Client-side persistent data">Persistent data</a></li>
<li><a href="Web_IDL" title="Web IDL">Web IDL</a></li>
<li><a href="Dynamic_web_page#Client-side_scripting" title="Dynamic web page">Scripting</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><td colspan="2" class="navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><td class="navbox-abovebelow" colspan="2"><div id="Related_topics14">Related topics</div></td></tr><tr><td colspan="2" class="navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Frontend_and_backend" title="Frontend and backend">Frontend and backend</a></li>
<li><a href="Microservices" title="Microservices">Microservices</a>
<ul><li><a href="REST" title="REST">REST</a></li>
<li><a href="GraphQL" title="GraphQL">GraphQL</a></li></ul></li>
<li><a href="Push_technology" title="Push technology">Push technology</a></li>
<li><a href="Solution_stack" title="Solution stack">Solution stack</a></li>
<li><a href="Web_page" title="Web page">Web page</a>
<ul><li><a href="Static_web_page" title="Static web page">Static</a></li>
<li><a href="Dynamic_web_page" title="Dynamic web page">Dynamic</a></li></ul></li>
<li><a href="Web_standards" title="Web standards">Web standards</a></li>
<li><a href="Web_API_security" title="Web API security">Web API security</a></li>
<li><a href="Web_application" title="Web application">Web application</a>
<ul><li><a href="Rich_Internet_Application" title="Rich Internet Application">Rich</a></li>
<li><a href="Single-page_application" title="Single-page application">Single-page</a></li>
<li><a href="Progressive_web_app" title="Progressive web app">Progressive</a></li></ul></li>
<li><a href="Web_framework" title="Web framework">Web framework</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr></tbody></table></div></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-07-19" href="https://en.wikipedia.org/wiki/?title=Google_Native_Client&oldid=1301431311">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
</body></html>